
"""
在Synthesizer类 中，主要动作由play()方法执行
在Human类中，主要动作由speak()方法执行

有一个问题：客户端仅知道如何调用execute()方法，并不知道play() 和speak()。
在不改变Synthesizer和Human类的前提下，我们该如何做才能让代码有效？适配器是救星
"""

class Synthesizer:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return 'the {} synthesizer'.format(self.name)

    def play(self):
        return 'is playing an electronic song'


class Human:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return '{} the human'.format(self.name)

    def speak(self):
        return 'says hello'
